# -*- coding: utf-8 -*-


# leitura em csv
import csv
import sqlite3
import time


class en_superior:

    dados = []

    ########################################
    # operacoes com base de dados
    ########################################

    def criar_tabela(self):
        '''
        criacao das tabelas da base de dados
        '''
        conn = sqlite3.connect('ensino_superior.db')
        cursor = conn.cursor()
        cursor.execute("""CREATE TABLE IF NOT EXISTS docente 
                          (cod_docente INT,
                          nome TEXT,
                          grau TEXT,
                          curso TEXT,
                          categoria TEXT,
                          regime TEXT,
                          ano_lectivo INT,
                          tipo_ensino TEXT,
                          nome_estabelecimento TEXT)
                       """)

        cursor.close()
        pass

    
    def leitura_csv(self):
        '''
        leitura dos dados em ficheiro csv
        '''


        conn = sqlite3.connect('ensino_superior.db')
        cursor = conn.cursor()
        ficheironumero = 0

        for x in range (0,11):

            print ficheironumero
            ficheiro = open("reb{0}.csv".format(x), "r")
            read= csv.reader(ficheiro)
            read.next()
            spamreadeR = csv.reader(ficheiro, delimiter = ',')
            ficheironumero = ficheironumero + 1

           

            for i in spamreadeR:
                
                cursor.execute("""INSERT INTO docente 
                                  (cod_docente,
                                  nome,
                                  grau,
                                  curso,
                                  categoria,
                                 regime,
                                  ano_lectivo,
                                  tipo_ensino,
                                  nome_estabelecimento)

                values ("{0}", "{1}", "{2}", "{3}", "{4}", "{5}", "{6}",
                "{7}","{8}")""" .\
                format(
                    str(i[0]).replace('"', '\''),
                    str(i[1]).replace('"', '\''),
                    str(i[2]).replace('"', '\''),
                    str(i[3]).replace('"', '\''),
                    str(i[4]).replace('"', '\''),
                    str(i[5]).replace('"', '\''),
                    str(i[6]).replace('"', '\''),
                    str(i[7]).replace('"', '\''),
                    str(i[8]).replace('"', '\'')))
                pass
            pass
            ficheiro.close()
        pass
        conn.commit()
        conn.close()
    pass




    def estatistica(self):
        '''
        Executa as estatisticas da base de dados
        '''

        global dados
        conn = sqlite3.connect('ensino_superior.db')
        cursor = conn.cursor()
        ficheironumero = 0
        cursor.execute("""
        SELECT * FROM docente
        """)
        inf=cursor.fetchall()
        cursor.close()

        dados = inf

        ##print len (inf)

    pass

    def estabelecimentos(self):
        global dados
        inf = dados
        escolas = []

        for x in range (0, len(inf)):
            if (inf[x][6] == 2000):
                if (inf[x][7].encode('utf-8') == 'Ensino Superior Público Militar e Policial'):
                    escolas.append(inf[x][8])
                pass
            pass
        pass

        print len(escolas)

    pass


    def categorias(self):
        global dados
        inf = dados
        escolas = []

        for x in range (0, len(inf)):
            if (inf[x][6] == 2000):
                if (inf[x][7].encode('utf-8') == 'Ensino Superior Público Militar e Policial'):
                    if (inf[x][4] == 'Assistente'):
                        escolas.append(inf[x][8])
                    pass
                pass
            pass
        pass

        print len(escolas)

    pass

    def grau(self):
        global dados
        inf = dados
        escolas = []

        for x in range (0, len(inf)):
            if (inf[x][6] == 2000):
                if (inf[x][7].encode('utf-8') == 'Ensino Superior Público Militar e Policial'):
                    if (inf[x][2] == 'Licenciatura'):
                        escolas.append(inf[x][8])
                    pass
                pass
            pass
        pass

        print len(escolas)

    pass


e1 = en_superior()
e1.criar_tabela()

e1.leitura_csv()

t1 = time.clock()
e1.estatistica()
t2 = time.clock()
print t2-t1

e1.estabelecimentos()

e1.categorias()

e1.grau()

